package com.example.wzz;



import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;

/**
 * 上传文件工具类
 */
@Component
public class UploadFileUtil {
    private String baseUrl="http://39.107.82.168";

    // 文件保存目录路径
    private String uploadPath = "D:\\tomcat-8.0.52\\webapps\\ROOT\\SOP";
    // 文件的目录名
    private String dirName = "images";
    // 上传临时路径
    private static final String TEMP_PATH = "temp";
    // 临时存相对路径
    private String tempPath = uploadPath + TEMP_PATH;
    // 单个文件最大上传大小(10M)
    private long fileMaxSize = 1024 * 1024 * 10;
    // 最大文件大小(100M)
    private long maxSize = 1024 * 1024 * 100;



    public  VueResult uploadFile( MultipartFile file,String product,String itemName) {
        Meta meta=new Meta("文件写入成功","200");
        //上传文件，不进行图片的压缩，但需要判断一下文件格式
        //文件如果存在 是否替换 是否保留  涉及版本
        //返回url 是否隐藏路径  （内部使用可以暂时不考虑）
        String returnMsg = null;
        String fileName = file.getOriginalFilename();
        String parent=uploadPath+"\\"+product+"\\"+itemName;
        File targetFile = new File(parent, fileName);
        String url=targetFile.getPath();
        // 文件存在
        if (!targetFile.getParentFile().exists()) {
            // 新建文件目录
            targetFile.getParentFile().mkdirs();
        }
        // 保存文件
        try {
            file.transferTo(targetFile);
            SopFile sopFile=new SopFile();
            sopFile.setFilename(fileName);
            sopFile.setUrl(url);
            sopFile.setType("PDF");
            return new VueResult(sopFile,meta);
        } catch (Exception e) {
            meta.setMsg("上传失败");
            meta.setStatus("500");
            return new VueResult("",meta);
        }
    }

    public VueResult deleteFile(String url){
        Meta meta=new Meta("","200");
        //String fileName = file.getOriginalFilename();
        File file1 =new File(url);
        try {
            if (file1.delete()) {
                return new VueResult("", meta);
            } else {
                meta.setStatus("500");
                meta.setMsg("删除失败");
                return new VueResult("", meta);
            }
        }catch(Exception e){
            meta.setStatus("500");
            meta.setMsg("删除失败");
            return new VueResult("", meta);
        }
    }








}

